@echo off
setlocal enabledelayedexpansion

echo ========================================
echo 清空Cursor工作区存储目录
echo ========================================
echo.

set "TARGET_DIR=%APPDATA%\Cursor\User\workspaceStorage"

echo 目标目录: !TARGET_DIR!
echo.

:: 检查目录是否存在
if not exist "!TARGET_DIR!" (
    echo 错误: 目录不存在 - !TARGET_DIR!
    echo.
    pause
    exit /b 1
)

:: 显示当前目录内容
echo 当前目录内容:
dir "!TARGET_DIR!" /b 2>nul
if errorlevel 1 (
    echo 目录为空或无法访问
) else (
    echo.
)

:: 确认操作
echo 警告: 此操作将删除 workspaceStorage 目录中的所有文件和文件夹!
echo 这可能会导致 Cursor 丢失工作区相关的设置和缓存。
echo.
set /p "confirm=确定要继续吗? (y/N): "

if /i not "!confirm!"=="y" (
    echo 操作已取消。
    pause
    exit /b 0
)

echo.
echo 正在清空目录...

:: 删除所有文件和子目录
pushd "!TARGET_DIR!"
if errorlevel 1 (
    echo 错误: 无法进入目录 !TARGET_DIR!
    pause
    exit /b 1
)

:: 删除所有文件 (包括隐藏文件和只读文件)
for %%f in (*) do (
    attrib -h -r -s "%%f" >nul 2>&1
    del /f /q "%%f" >nul 2>&1
    if exist "%%f" (
        echo 警告: 无法删除文件 %%f
    )
)

:: 删除所有子目录
for /d %%d in (*) do (
    attrib -h -r -s "%%d" /s /d >nul 2>&1
    rd /s /q "%%d" >nul 2>&1
    if exist "%%d" (
        echo 警告: 无法删除目录 %%d
    )
)

popd

echo.
echo 检查清空结果...
dir "!TARGET_DIR!" /b 2>nul
if errorlevel 1 (
    echo 成功: 目录已清空!
) else (
    echo 注意: 目录中仍有一些文件或文件夹未能删除
    echo 当前剩余内容:
    dir "!TARGET_DIR!" /b
)

echo.
echo 操作完成!
echo ========================================
pause
